package threadBaseUse;

/**
 * @description: 通过继承 Thread 类创建线程
 * @author: Liuwanqing
 * @date: 2022-10-12 15:53
 */
public class Thread01 {
    public static void main(String[] args) throws InterruptedException {
        // 创建 Cat 对象，当作线程使用
        Cat cat = new Cat();
        cat.start(); // 线程启动，调用 Cat 的 run 方法

        // 当 main 线程启动子线程，主线程不会阻塞
        for (int i=0; i<120; i++){
            System.out.println("汪汪，我是小狗狗~" + i + " 线程名" + Thread.currentThread().getName() );
            Thread.sleep(1000);
        }
    }
}

// 继承了 Thread 类的类就可以当作线程使用
// 我们会重写 run 方法，重写自己的业务代码
class Cat extends Thread{
    @Override
    public void run() {
        int time = 0;
        while (true) {
            // 该线程逻辑为：每隔一秒，这个小猫咪叫一声
            System.out.println("喵喵喵~，我是最可爱的小猫咪~" + time + " 线程名：" + Thread.currentThread().getName());
            try { // 休眠
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
            time++;
            if(time == 120){ // 叫了8次，小猫咪就不叫了
                break;
            }
        }
    }
}
